$(document).ready(function() {
    var context = getContextPath();

    // 使用Ajax请求获取当前用户信息
    $.ajax({
        url: context + "/user/getUserInfoServlet", // 请求后端Servlet的URL
        method: "GET",
        success: function(response) {
            if (response.code === 1) { // 请求成功
                var user = response.data;
                // 填充到页面的相关元素
                $('#usernameDisplay').text(user.username || "未设置");
                $('#nicknameDisplay').text(user.fullName || "未设置");
                $('#emailDisplay').text(user.email || "未设置");
                $('#passwordDisplay').text(user.password || "未设置");

            } else {
                // 请求失败时，可以弹出提示
                alert('获取用户信息失败: ' + response.message);
            }
        },
        error: function() {
            alert('请求失败，请稍后重试');
        }
    });
});


// 查看歌曲
function viewSongs() {
    var context = getContextPath();

    // 使用Ajax请求获取歌曲列表
    $.ajax({
        url: context + "/user/getSongsServlet", // 请求后端Servlet的URL
        method: "GET",
        success: function(response) {
            if (response.code === 1) { // 请求成功
                var songs = response.data;
                var tableBody = $('#songsTableBody');
                tableBody.empty(); // 清空表格内容

                // 填充歌曲数据到表格
                songs.forEach(function(song) {
                    var row = $('<tr>');
                    row.append($('<td>').text(song.songId));
                    row.append($('<td>').text(song.title));
                    row.append($('<td>').text(song.description));
                    row.append($('<td>').text(song.categoryId));
                    // 下面要加操作按钮，包括：播放、下载、删除等，每个按钮要加上事件监听，方便后续操作
                    var actionsCell = $('<td>');
                    actionsCell.append($('<button>').addClass('btn btn-success').text('Download').click(function() {
                        // 下载按钮点击事件，这里可以调用下载歌曲的函数
                        downloadSong(song.songId);
                    }));
                    actionsCell.append($('<button>').addClass('btn btn-danger').text('Delete').click(function() {
                        // 删除按钮点击事件，这里可以调用删除歌曲的函数
                        deleteSong(song.songId);
                    }));
                    row.append(actionsCell);
                    tableBody.append(row);
                });

                // 显示模态框
                $('#viewSongsModal').modal('show');
            } else {
                // 请求失败时，可以弹出提示
                alert('获取歌曲列表失败: ' + response.message);
            }
        },
        error: function() {
            alert('请求失败，请稍后重试');
        }
    });
}

// 下面实现删除deleteSong
function deleteSong(songId) {
    var context = getContextPath();

    // 使用Ajax请求删除歌曲
    $.ajax({
        url: context + "/user/deleteSongServlet?songId=" + songId, // 请求后端Servlet的URL
        method: "Get",
        success: function(response) {
            if (response.code === 1) { // 请求成功
                // 删除成功，可以刷新表格或更新页面
                alert('删除成功');
                // 刷新表格或更新页面
                window.location.reload();
            }
            else {
                // 请求失败时，可以弹出提示
                alert('删除失败: ' + response.message);
            }
        }
    })
}
// 下面实现下载downloadSong，通过id获取歌曲路径，直接调用前端的下载函数就行
function downloadSong(songId) {
    var context = getContextPath();

    // 使用Ajax请求获取歌曲路径
    $.ajax({
        url: context + "/user/getSongPathServlet?songId=" + songId, // 请求后端Servlet的URL
        method: "GET",
        dataType: "json",
        // 设置中文响应码
        headers: {
            "Accept-Charset": "utf-8"
        },
        success: function(response) {
            if (response.code === 1) { // 请求成功
                var songPath = response.data;
                // 调用前端的下载函数
                downloadFromPath(songPath);
            }
            else {
                // 请求失败时，可以弹出提示
                alert('获取歌曲路径失败: ' + response.message);
            }
        },
        error: function() {
            alert('请求失败，请稍后重试');
        }
    })
}
